Named Arguments এর ব্যবহার এবং উদাহরণ

Computer Programming - পিএইচপি (PHP 8) - Named Arguments (নেমড আর্গুমেন্টস)
170

PHP 8-এ Named Arguments একটি গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ফাংশন বা মেথড কল করার সময় প্যারামিটারগুলির নাম নির্দিষ্ট করে দেয়। এর মাধ্যমে, ডেভেলপাররা ফাংশন বা মেথডের প্যারামিটারগুলিকে তাদের নাম দিয়ে সরবরাহ করতে পারেন, যা কোডকে আরও পাঠযোগ্য এবং পরিষ্কার করে তোলে। Named Arguments ব্যবহার করার ফলে, প্যারামিটারগুলির অবস্থান (position) নিয়ে চিন্তা করার প্রয়োজন পড়ে না, এবং শুধুমাত্র প্যারামিটার নাম ব্যবহার করে সেগুলিকে প্রেরণ করা যায়।

Named Arguments কীভাবে কাজ করে?

Named Arguments ব্যবহার করলে, প্যারামিটারগুলির নাম উল্লেখ করে তাদের মান প্রেরণ করা হয়। এতে প্যারামিটারগুলির অবস্থান ঠিক রাখতে হবে না, বরং আপনি যেই নাম উল্লেখ করবেন সেই নামের মান পাস হবে।

Named Arguments এর সুবিধা

  1. কোডের পাঠযোগ্যতা বৃদ্ধি: প্যারামিটার নাম উল্লেখ করার ফলে কোডটি আরও পরিষ্কার এবং পাঠযোগ্য হয়, বিশেষ করে যদি ফাংশনে অনেক প্যারামিটার থাকে।
  2. প্যারামিটার ক্রমের উপর নির্ভরতা কমানো: ফাংশনের প্যারামিটারগুলির অবস্থান পরিবর্তন করা হলে আগের কোডে পরিবর্তন করার প্রয়োজন হয় না, কারণ প্যারামিটারগুলো নাম দ্বারা নির্ধারিত হয়।
  3. ডিফল্ট মান ব্যবহার করা সহজ: Named Arguments ব্যবহার করে, শুধুমাত্র প্রয়োজনীয় প্যারামিটারগুলি সরবরাহ করা সম্ভব, এবং অন্য প্যারামিটারগুলো তাদের ডিফল্ট মান নিতে পারে।

Named Arguments এর উদাহরণ

১. সাধারণ Named Arguments ব্যবহার

ধরা যাক, আমাদের একটি ফাংশন আছে, যা তিনটি প্যারামিটার নেয়: name, age, এবং email

function registerUser(string $name, int $age, string $email): void {
    echo "Name: $name, Age: $age, Email: $email";
}

// Named Arguments ব্যবহার করে ফাংশন কল করা
registerUser(name: "John Doe", age: 30, email: "john@example.com");

এখানে, আমরা প্যারামিটারগুলির নাম ব্যবহার করে তাদের মান সরবরাহ করেছি। এটি কোডকে পরিষ্কার এবং পাঠযোগ্য করে তোলে। এখন, আমরা প্যারামিটারগুলির অবস্থান নিয়ে চিন্তা না করেই তাদের মান সরবরাহ করতে পারছি।

২. প্যারামিটার অবস্থান পরিবর্তন করা

Named Arguments-এর একটি বড় সুবিধা হল আপনি প্যারামিটারগুলির অবস্থান পরিবর্তন করেও সেগুলির মান ঠিক রাখতে পারবেন। উদাহরণস্বরূপ:

// প্যারামিটার অবস্থান পরিবর্তন করা
registerUser(age: 25, email: "example@example.com", name: "Alice");

এখানে, আমরা প্যারামিটারগুলির অবস্থান পরিবর্তন করেছি, তবে তবুও কোড ঠিকঠাক কাজ করছে কারণ প্যারামিটারগুলো তাদের নাম দ্বারা শনাক্ত হচ্ছে।

৩. ডিফল্ট মান সহ Named Arguments

ধরা যাক, আমাদের ফাংশনে কিছু ডিফল্ট প্যারামিটার মান রয়েছে:

function createAccount(string $username, string $email, bool $isActive = true): void {
    echo "Username: $username, Email: $email, Active: $isActive";
}

// Named Arguments ব্যবহার করে ডিফল্ট মান ছাড়া কল করা
createAccount(username: "john_doe", email: "john@example.com", isActive: false);

// Named Arguments ব্যবহার করে ডিফল্ট মান নিয়ে কল করা
createAccount(username: "jane_doe", email: "jane@example.com");

এখানে, isActive প্যারামিটারটি ডিফল্টভাবে true থাকবে যদি না আমরা অন্য কোনো মান সরবরাহ করি। আমরা প্রথম কলটিতে false পাঠিয়েছি এবং দ্বিতীয় কলটিতে ডিফল্ট মান ব্যবহার করেছি।

৪. অর্ডারিং ছাড়া Named Arguments

এছাড়াও, Named Arguments আপনাকে প্যারামিটারগুলির আদেশ পরিবর্তন করার সুবিধা দেয়, বিশেষত যখন ফাংশনের অনেক প্যারামিটার থাকে এবং আপনি শুধুমাত্র কিছু প্যারামিটার সরবরাহ করতে চান।

function updateUser(string $name, string $email, bool $isVerified = false, int $age = 18): void {
    echo "Name: $name, Email: $email, Verified: $isVerified, Age: $age";
}

// শুধুমাত্র নাম এবং ইমেল পাঠানো হয়েছে
updateUser(name: "Bob", email: "bob@example.com");

// নাম, ইমেল এবং বয়স পাঠানো হয়েছে
updateUser(name: "Alice", email: "alice@example.com", age: 30);

এখানে, isVerified প্যারামিটারটি ডিফল্টভাবে false থাকবে, কিন্তু আমরা একাধিক প্যারামিটার পাঠানোর সময় তাদের মান ব্যবহার করতে পারছি।


নিষ্কর্ষ

PHP 8 এ Named Arguments ফিচারটি কোড লেখার সময় অনেক সুবিধা প্রদান করে। এটি কোডের পাঠযোগ্যতা বাড়ায়, টাইপ ভুল কমায়, এবং ডিফল্ট মান ব্যবহারে সহজতা নিয়ে আসে। Named Arguments ব্যবহার করার মাধ্যমে ডেভেলপাররা ফাংশন কলের সময় প্যারামিটারগুলির নামের সাহায্যে তাদের মান প্রেরণ করতে পারেন, এবং প্যারামিটারগুলির ক্রমের বিষয়ে চিন্তা করতে হয় না।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...